package com.cskaoyan.javase.oop1._7exercise.pvz;


/**
 * 植物类
 *
 * @since 11:27
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Plant {
    String name;
    int price;
    int damageValue;
    int hp;

    // 持有僵尸对象的引用作为自身成员变量.成员变量如果是引用数据类型,存的是对象的引用
    Zombie plantZ;

    // 构造器
    public Plant(String name, int price, int damageValue, int hp) {
        this.name = name;
        this.price = price;
        this.damageValue = damageValue;
        this.hp = hp;
    }

    /*
            怎么在这个方法中输出僵尸的name?
                1.交互的方法每次都传入僵尸对象(可以但是麻烦)
                2.持有僵尸对象的引用作为自身的成员变量(需要频繁交互时,使用更方便,推荐采取这种方法)
         */
    public void attack() {
        System.out.println(name + "正在攻击" + plantZ.name);
    }

    public void beAttacked() {
        System.out.println(name + "正在被" + plantZ.name + "攻击, 剩余" + (hp - plantZ.damageValue) + "点血量!");
    }
}
